package cn.chinaunicom.smart.community.generator.po.vo;

import java.time.LocalDateTime;

import com.baomidou.mybatisplus.core.toolkit.SystemClock;
import org.springframework.beans.BeanUtils;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import cn.chinaunicom.smart.community.generator.entity.GeneratorConfig;
import lombok.Data;


/**
 * @ProjectName: cloud
 * @Package: cn.chinaunicom.smart.community.generator.po.vo
 * @ClassName: GeneratorConfigVO
 * @Description: java类作用描述
 * @Author: wangjc
 * @CreateDate: 2020/3/25 0025 15:56
 * @UpdateUser: 更新者
 * @UpdateDate: 2020/3/25 0025 15:56
 * @UpdateRemark: 更新内容
 * @Version: 1.0
 */
@Data
@Component
@ConfigurationProperties(prefix = "genconfig")
public class GeneratorConfigVO {

    public static final String TRIM_YES = "1";
    public static final String TRIM_NO = "0";

    /**
     * 主键
     */
    private String id;

    /**
     * 数据库类别
     */
    private String databaseType;
    
    /**
     * 数据库名称
     */
    private String databaseName;

    /**
     * 作者
     */
    private String author;

    /**
     * 基础包名
     */
    private String basePackage;

    /**
     * entity文件存放路径
     */
    private String entityPackage;

    /**
     * mapper文件存放路径
     */
    private String mapperPackage;

    /**
     * mapper xml文件存放路径
     */
    private String mapperXmlPackage;

    /**
     * servcie文件存放路径
     */
    private String servicePackage;

    /**
     * serviceImpl文件存放路径
     */
    private String serviceImplPackage;

    /**
     * controller文件存放路径
     */
    private String controllerPackage;

    /**
     * 是否去除前缀
     */
    private String isTrim;

    /**
     * 前缀内容
     */
    private String trimValue;

    /**
     * java文件路径，固定值
     */
    private transient String javaPath = "/src/main/java/";
    /**
     * 配置文件存放路径，固定值
     */
    private transient String resourcesPath = "src/main/resources";
    /**
     * 文件生成日期
     */
//    private transient String date = DateUtil.formatFullTime(LocalDateTime.now(), DateUtil.FULL_TIME_SPLIT_PATTERN);
    private transient String date = SystemClock.nowDate();

    /**
     * 表名
     */
    private transient String tableName;
    /**
     * 表注释
     */
    private transient String tableComment;
    /**
     * 数据表对应的类名
     */
    private transient String className;
    /**
     * 实体对象
     */
    private GeneratorConfig genConf = new GeneratorConfig();

    /**
     * 转成实体类对象
     * @return
     */
    public GeneratorConfig toEntity(){
        BeanUtils.copyProperties(this, genConf);
        return genConf;
    }
}
